吸血鬼 vs にんにく農家
https://u9-games.vercel.app/games/ahoge-ninniku/index.html
https://scrapbox.io/files/687beb478af69b5049cdaa55.webp
あほげー第47回
#あほげー
絵の説得力が無さすぎる
Kontra.jsを使った
SpriteSheetを使ったが、フレーム同士のスペース無いスプライトシート使うとちゃんと正確に切れてなくて端に隣のフレームが見切れる事があるんだよな、このライブラリに限らずこの現象ってよくあるんだよな、ブラウザの仕様なのかなんか知らんけど、spacingプロパティがあるのでスプライトシートにスペース用意してspacingにスペース幅書いてOK
1pxだけ右端余ってるスプライトシートとかを渡すと普通に1pxだけのフレームが余分に作られて次の行のフレームカウントが意図とズレるという現象があった、余った分は切り捨ての仕様でいいのではと思った
あと、SpriteSheetってアニメーション用で、SpriteSheetから特定のフレームを取り出してSpriteのimageにセットしようと思ったら、フレーム取り出すの無くて、アニメーションしない1フレームだけなのにanimationsでanimation定義してSprite.playAnimation()をするという変な事をした
アニメーションのさせかたで躓いた、update内でthis.currentAnimation?.update(dt);しとくかthis.advance();をしとかないと動かない
update関数が無い時、内部的にはadvanceが呼ばれる為に、update関数が無い場合は動くという罠
ていうかupdateにはadvanceをいつも呼んでおくのがたぶん普通なのかも
Sceneを後から使おうとするとダルかったなので使うなら最初から使った方がよさそう、結局使わなかった
Poolを使ったが、Poolに入れるGameObjectはGameObject.init()を用意しておく(overrideしておく)必要があるが、initの書き方や仕様がよくわからん、なんかエラーが出たりするのでなんか色々やって動く感じに適当にsuperとかproperty無い時早期returnとか変なの書いたけど
Poolでは再利用時にinitが呼ばれるみたいだけど、手動でinitしようとしたらなんかうまくいかなかったし謎
型がうまくいかない、TypeScript前提じゃないっぽいので、型がダルい事になりがち、型握り潰しまくった
Buttonを使ったけど、render()をさせたりやめたりすると何かtextNodeが残る?ので非表示再表示をいちいちdestory()して再生成してってやった
このButton実際にDOMにButton要素作ってTabキーでフォーカスとれるようにしたりなぜかアクセシビリティに気遣っているっぽい
こう並べると思った以上に躓きまくってるな、体感良い感じだったけど
効果音はzzfx、.min.jsをimportしてzzfx(...)で鳴らした、便利
#自作
#gamedev